package rbac.dao;

import java.util.List;

import rbac.entity.RbacRole;


/**
 * RBAC DAO 接口, 负责提供<strong>角色</strong>实体与数据库交互的方法.
 * 
 * @author Huadi
 * @author Zoufengyang
 */
public interface RoleDao {

	/**
	 * 获取一个角色.
	 * 
	 * @param id
	 *            角色 ID.
	 * @return 相应角色实体. 如果不存在, 返回 <code>null</code>.
	 */
	RbacRole getRole(Integer id);

	/**
	 * 获取所有角色.
	 * 
	 * @return
	 */
	List<RbacRole> getAllRoles();

	/**
	 * 持久化角色.
	 * 
	 * @param role
	 *            角色实体.
	 */
	Integer save(RbacRole role);

	/**
	 * 修改角色.
	 * 
	 * @param role
	 *            角色实体.
	 */
	void update(RbacRole role);

	/**
	 * 删除角色.
	 * 
	 * @param role
	 *            角色实体.
	 */
	void delete(RbacRole role);

	/**
	 * 删除角色.
	 * 
	 * @param roleId
	 *            角色 ID.
	 */
	void delete(Integer roleId);

}
